package com.ruoyi.merchant.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.merchant.domain.ImsYzzcSunGoods;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 车辆对象 ims_yzzc_sun_goods
 * 
 * @author ruoyi
 * @date 2024-03-16
 */
public class ImsYzzcSunGoodsDto extends ImsYzzcSunGoods
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long id;

    /** */
    //@Excel(name = "")
    private Long uniacid;

    /** 门店id */
    //@Excel(name = "门店id")
    private Long sid;

    /** 车辆名称 */
    @Excel(name = "车辆名称")
    private String name;

    @Excel(name = "所属门店")
    private String shopName;

    @Excel(name = "所属门店地址")
    private String shopAddress;

    /** 车牌号 */
    @Excel(name = "车牌号")
    private String carnum;

    /** 颜色 */
    @Excel(name = "颜色")
    private String colour;

    /** 车身结构 1.两厢 2.三厢 */
    @Excel(name = "车身结构" ,readConverterExp = "1=两厢,2=三厢")
    private Integer structure;

    /** 变速箱1.手动2.自动 */
    @Excel(name = "变速箱",readConverterExp = "1=手动,2=自动")
    private Integer grarbox;

    /**车身结构*/
    private String bodystructure;
    /**变速箱*/
    private String gearbox;
    /**燃油类型*/
    private String fueltype;
    /**燃油标号*/
    private String fuelgrade;
    /**排放标准*/
    private String envstandards;
    /**前轮胎尺寸*/
    private String fronttiresize;
    /**后轮胎尺寸*/
    private String reartiresize;
    /**最大功率 KW*/
    private String maxpower;
    /**最大马力(Ps)*/
    private String maxhorsepower;
    /**	机油分类 */
    private String grade;

    /** 汽车排量 */
    @Excel(name = "汽车排量")
    private String displacement;

    /** 核载人数 */
    @Excel(name = "核载人数")
    private Integer num;

    /** 车辆主图 */
    //@Excel(name = "车辆主图")
    private String pic;

    /** 车辆图片 */
    //@Excel(name = "车辆图片")
    private String vehpics;
    /** 车辆行驶证 */
    private String vehDrivingPic;
    /** 车辆保险照片 */
    private String  vehInsurancePic;
    /** 车辆年检照片 */
    private String vehCheckPic;

    /** 车辆简介 */
    @Excel(name = "车辆简介")
    private String content;

    /** 租金类型 1.日租2周租3月租4年租 */
    //@Excel(name = "租金类型")
    private Integer moneytype;

    /** 租金 */
    @Excel(name = "租金")
    private BigDecimal money;

    /** 订单押金 */
    @Excel(name = "押金")
    private BigDecimal deposit;

    /** 违章押金 */
    private BigDecimal violationDeposit;

    /** 汽车类型 */
    //@Excel(name = "汽车类型")
    private Long cartype;

    /** 汽车类型图片 */
    private String carTypePic;

    /** 手续费 */
    @Excel(name = "手续费")
    private BigDecimal fee;

    /** 服务费 */
    @Excel(name = "基础服务费")
    private BigDecimal serviceFee;

    /** 尊享服务费 */
    @Excel(name = "尊享服务费")
    private BigDecimal zxServiceFee;

    /** 是否推荐到首页 1.是 2.否 */
    @Excel(name = "是否推荐到首页",readConverterExp = "1=是,2=否")
    private Integer rec;

    /** 1.是 2.否  */
    @Excel(name = "是否热门车型",readConverterExp = "1=是,2=否")
    private Integer hot;
    /** 车辆创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createtime;

    /** 1.空闲 2.已租 3.下架 4.维修中 */
    @Excel(name = "状态",readConverterExp = "1=空闲,2=已租,3=下架,4=维修中,5=预约待租")
    private Integer status;

    /** 活动价格 */
    //@Excel(name = "活动价格")
    private BigDecimal actMoney;

    /** 1已删除 */
    //@Excel(name = "是否已删除")
    private Integer isDel;

    /** */
    //@Excel(name = "")
    private String subscribeDuration;

    /** 是否开启车辆续租  1 开启  2 关闭*/
    //@Excel(name = "是否开启车辆续租")
    private Integer openXz;

    /** 是否支持免押  0 是  1 否 */
    //@Excel(name = "是否支持免押")
    private Integer depositway;

    /** 0不开启单独分销，1开启 */
    //@Excel(name = "是否开启单独分销")
    private Integer distributionOpen;

    /** 0百分比，1固定金额 */
    //@Excel(name = "分销类型")
    private Integer distributionCommissiontype;

    /** 一级佣金 */
    //@Excel(name = "一级佣金")
    private BigDecimal firstmoney;

    /** 二级佣金 */
   // @Excel(name = "二级佣金")
    private BigDecimal secondmoney;

    /** 三级佣金 */
    //@Excel(name = "三级佣金")
    private BigDecimal thirdmoney;

    /** 所属门店 */

    private Long shopIds;
    /** 车辆禁止区域*/
    private String prohibitedAreas;

    private String[] areaCity;

    /** 送车上门服务费 */
    private BigDecimal sendServiceFee;
    /** 上门取车服务费 */
    private BigDecimal pickServiceFee;

    /** 车身结构参数 */
    private String structureStr;
    /** 变速箱参数 */
    private String grarboxStr;
    /** 汽车类型参数 */
    private String cartypeStr;
    /** 车辆状态参数 */
    private String statusStr;
    /** 包车汽车类型参数  0 豪华五座 1 豪华七座*/
    private String engageCarTypeStr;

    private List<Long> structureList;//多个车身结构集合

    private List<Long> grarboxList;//多个变速箱集合

    private List<Long> cartypeList;//多个汽车类型集合

    private List<Long> engageCarTypeList;//多个包车汽车类型集合

    private List<Long> statusList;//多个车辆状态集合

    /** 个人提成费用 */
    private BigDecimal personComExpen;
    /** 附加费用 */
    private BigDecimal additionalFees;

    /** 车架号 */
    private String frameNumber;
    /** GPS设备 */
    private String imei;
    /** 服务类型 0 自驾 1 配驾*/
    //@Excel(name = "服务类型",readConverterExp = "0=自驾,1=配驾")
    private Integer serviceType;
    /** 包车汽车类型  0 豪华五座 1 豪华七座*/
    private Integer engageCarType;
    /** 车龄 */
    private String vehicleAge;
    /** 是否租车 0 否 1 是 */
    private Integer isRental;
    /** 是否包车  0 否 1 是 */
    private Integer isChartered;
    /** 车辆来源  0 内部车辆 1 外部车辆 */
    @Excel(name = "车辆来源",readConverterExp = "0=内部车辆,1=外部车辆")
    private Integer vehicleDisting; // 0 内部车辆 1 外部车辆

    private String isBindGps;

    /** 取车时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "取车时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date startTime;

    /** 还车时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "还车时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date endTime;

    /** 用户的经度 */
    private String userLng;

    /** 用户的纬度 */
    private String  userLat;

    /** 用户与门店之前的距离 */
    private Double distance;

    /** 用户与门店之前的距离搜索条件 */
    private String distanceLimit;

    public String getDistanceLimit() {
        return distanceLimit;
    }

    public void setDistanceLimit(String distanceLimit) {
        this.distanceLimit = distanceLimit;
    }

    public String getShopAddress() {
        return shopAddress;
    }

    public void setShopAddress(String shopAddress) {
        this.shopAddress = shopAddress;
    }

    public String getUserLng() {
        return userLng;
    }

    public void setUserLng(String userLng) {
        this.userLng = userLng;
    }

    public String getUserLat() {
        return userLat;
    }

    public void setUserLat(String userLat) {
        this.userLat = userLat;
    }

    public Double getDistance() {
        return distance;
    }

    public void setDistance(Double distance) {
        this.distance = distance;
    }

    public String getEngageCarTypeStr() {
        return engageCarTypeStr;
    }

    public void setEngageCarTypeStr(String engageCarTypeStr) {
        this.engageCarTypeStr = engageCarTypeStr;
    }

    public List<Long> getEngageCarTypeList() {
        return engageCarTypeList;
    }

    public void setEngageCarTypeList(List<Long> engageCarTypeList) {
        this.engageCarTypeList = engageCarTypeList;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public String getIsBindGps() {
        return isBindGps;
    }

    public void setIsBindGps(String isBindGps) {
        this.isBindGps = isBindGps;
    }

    public String getBodystructure() {
        return bodystructure;
    }

    public void setBodystructure(String bodystructure) {
        this.bodystructure = bodystructure;
    }

    public String getGearbox() {
        return gearbox;
    }

    public void setGearbox(String gearbox) {
        this.gearbox = gearbox;
    }

    public String getFueltype() {
        return fueltype;
    }

    public void setFueltype(String fueltype) {
        this.fueltype = fueltype;
    }

    public String getFuelgrade() {
        return fuelgrade;
    }

    public void setFuelgrade(String fuelgrade) {
        this.fuelgrade = fuelgrade;
    }

    public String getEnvstandards() {
        return envstandards;
    }

    public void setEnvstandards(String envstandards) {
        this.envstandards = envstandards;
    }

    public String getFronttiresize() {
        return fronttiresize;
    }

    public void setFronttiresize(String fronttiresize) {
        this.fronttiresize = fronttiresize;
    }

    public String getReartiresize() {
        return reartiresize;
    }

    public void setReartiresize(String reartiresize) {
        this.reartiresize = reartiresize;
    }

    public String getMaxpower() {
        return maxpower;
    }

    public void setMaxpower(String maxpower) {
        this.maxpower = maxpower;
    }

    public String getMaxhorsepower() {
        return maxhorsepower;
    }

    public void setMaxhorsepower(String maxhorsepower) {
        this.maxhorsepower = maxhorsepower;
    }

    public String getGrade() {
        return grade;
    }

    public void setGrade(String grade) {
        this.grade = grade;
    }


    public Integer getVehicleDisting() {
        return vehicleDisting;
    }

    public void setVehicleDisting(Integer vehicleDisting) {
        this.vehicleDisting = vehicleDisting;
    }

    public Integer getIsRental() {
        return isRental;
    }

    public void setIsRental(Integer isRental) {
        this.isRental = isRental;
    }

    public Integer getIsChartered() {
        return isChartered;
    }

    public void setIsChartered(Integer isChartered) {
        this.isChartered = isChartered;
    }

    public String getVehicleAge() {
        return vehicleAge;
    }

    public void setVehicleAge(String vehicleAge) {
        this.vehicleAge = vehicleAge;
    }

    public Integer getServiceType() {
        return serviceType;
    }

    public void setServiceType(Integer serviceType) {
        this.serviceType = serviceType;
    }

    public Integer getEngageCarType() {
        return engageCarType;
    }

    public void setEngageCarType(Integer engageCarType) {
        this.engageCarType = engageCarType;
    }

    public String getImei() {
        return imei;
    }

    public void setImei(String imei) {
        this.imei = imei;
    }

    public String getFrameNumber() {
        return frameNumber;
    }

    public void setFrameNumber(String frameNumber) {
        this.frameNumber = frameNumber;
    }

    public BigDecimal getPersonComExpen() {
        return personComExpen;
    }

    public void setPersonComExpen(BigDecimal personComExpen) {
        this.personComExpen = personComExpen;
    }

    public BigDecimal getAdditionalFees() {
        return additionalFees;
    }

    public void setAdditionalFees(BigDecimal additionalFees) {
        this.additionalFees = additionalFees;
    }

    public List<Long> getStatusList() {
        return statusList;
    }

    public void setStatusList(List<Long> statusList) {
        this.statusList = statusList;
    }

    public List<Long> getStructureList() {
        return structureList;
    }

    public void setStructureList(List<Long> structureList) {
        this.structureList = structureList;
    }

    public List<Long> getGrarboxList() {
        return grarboxList;
    }

    public void setGrarboxList(List<Long> grarboxList) {
        this.grarboxList = grarboxList;
    }

    public List<Long> getCartypeList() {
        return cartypeList;
    }

    public void setCartypeList(List<Long> cartypeList) {
        this.cartypeList = cartypeList;
    }

    public String getStatusStr() {
        return statusStr;
    }

    public void setStatusStr(String statusStr) {
        this.statusStr = statusStr;
    }

    public String getStructureStr() {
        return structureStr;
    }

    public void setStructureStr(String structureStr) {
        this.structureStr = structureStr;
    }

    public String getGrarboxStr() {
        return grarboxStr;
    }

    public void setGrarboxStr(String grarboxStr) {
        this.grarboxStr = grarboxStr;
    }

    public String getCartypeStr() {
        return cartypeStr;
    }

    public void setCartypeStr(String cartypeStr) {
        this.cartypeStr = cartypeStr;
    }

    public BigDecimal getSendServiceFee() {
        return sendServiceFee;
    }

    public void setSendServiceFee(BigDecimal sendServiceFee) {
        this.sendServiceFee = sendServiceFee;
    }

    public BigDecimal getPickServiceFee() {
        return pickServiceFee;
    }

    public void setPickServiceFee(BigDecimal pickServiceFee) {
        this.pickServiceFee = pickServiceFee;
    }

    public String getVehInsurancePic() {
        return vehInsurancePic;
    }

    public void setVehInsurancePic(String vehInsurancePic) {
        this.vehInsurancePic = vehInsurancePic;
    }

    public String getVehCheckPic() {
        return vehCheckPic;
    }

    public void setVehCheckPic(String vehCheckPic) {
        this.vehCheckPic = vehCheckPic;
    }

    public BigDecimal getViolationDeposit() {
        return violationDeposit;
    }

    public void setViolationDeposit(BigDecimal violationDeposit) {
        this.violationDeposit = violationDeposit;
    }

    public String[] getAreaCity() {
        return areaCity;
    }

    public void setAreaCity(String[] areaCity) {
        this.areaCity = areaCity;
    }


    public String getProhibitedAreas() {
        return prohibitedAreas;
    }

    public void setProhibitedAreas(String prohibitedAreas) {
        this.prohibitedAreas = prohibitedAreas;
    }

    /** 排序方式 升序传 asc 降序传 desc */
    private String orderBy;

    /** 排序方式 升序传 asc 降序传 desc */
    private String distanceOrderBy;

    private String[] vehicleParams;

    public String getDistanceOrderBy() {
        return distanceOrderBy;
    }

    public void setDistanceOrderBy(String distanceOrderBy) {
        this.distanceOrderBy = distanceOrderBy;
    }

    public String getVehDrivingPic() {
        return vehDrivingPic;
    }

    public void setVehDrivingPic(String vehDrivingPic) {
        this.vehDrivingPic = vehDrivingPic;
    }

    public String getOrderBy() {
        return orderBy;
    }

    public void setOrderBy(String orderBy) {
        this.orderBy = orderBy;
    }

    public String getCarTypePic() {
        return carTypePic;
    }

    public void setCarTypePic(String carTypePic) {
        this.carTypePic = carTypePic;
    }

    public String getVehpics() {
        return vehpics;
    }

    public void setVehpics(String vehpics) {
        this.vehpics = vehpics;
    }

    public String[] getVehicleParams() {
        return vehicleParams;
    }

    public void setVehicleParams(String[] vehicleParams) {
        this.vehicleParams = vehicleParams;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public Long getShopIds() {
        return shopIds;
    }

    public void setShopIds(Long shopIds) {
        this.shopIds = shopIds;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setUniacid(Long uniacid) 
    {
        this.uniacid = uniacid;
    }

    public Long getUniacid() 
    {
        return uniacid;
    }
    public void setSid(Long sid) 
    {
        this.sid = sid;
    }

    public Long getSid() 
    {
        return sid;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setCarnum(String carnum) 
    {
        this.carnum = carnum;
    }

    public String getCarnum() 
    {
        return carnum;
    }
    public void setColour(String colour) 
    {
        this.colour = colour;
    }

    public String getColour() 
    {
        return colour;
    }
    public void setStructure(Integer structure) 
    {
        this.structure = structure;
    }

    public Integer getStructure() 
    {
        return structure;
    }
    public void setGrarbox(Integer grarbox) 
    {
        this.grarbox = grarbox;
    }

    public Integer getGrarbox() 
    {
        return grarbox;
    }
    public void setDisplacement(String displacement) 
    {
        this.displacement = displacement;
    }

    public String getDisplacement() 
    {
        return displacement;
    }
    public void setNum(Integer num) 
    {
        this.num = num;
    }

    public Integer getNum() 
    {
        return num;
    }
    public void setPic(String pic) 
    {
        this.pic = pic;
    }

    public String getPic() 
    {
        return pic;
    }
    public void setContent(String content) 
    {
        this.content = content;
    }

    public String getContent() 
    {
        return content;
    }
    public void setMoneytype(Integer moneytype) 
    {
        this.moneytype = moneytype;
    }

    public Integer getMoneytype() 
    {
        return moneytype;
    }
    public void setMoney(BigDecimal money) 
    {
        this.money = money;
    }

    public BigDecimal getMoney() 
    {
        return money;
    }
    public void setCartype(Long cartype) 
    {
        this.cartype = cartype;
    }

    public Long getCartype() 
    {
        return cartype;
    }
    public void setFee(BigDecimal fee) 
    {
        this.fee = fee;
    }

    public BigDecimal getFee() 
    {
        return fee;
    }
    public void setServiceFee(BigDecimal serviceFee) 
    {
        this.serviceFee = serviceFee;
    }

    public BigDecimal getServiceFee() 
    {
        return serviceFee;
    }
    public void setZxServiceFee(BigDecimal zxServiceFee) 
    {
        this.zxServiceFee = zxServiceFee;
    }

    public BigDecimal getZxServiceFee() 
    {
        return zxServiceFee;
    }
    public void setRec(Integer rec) 
    {
        this.rec = rec;
    }

    public Integer getRec() 
    {
        return rec;
    }
    public void setHot(Integer hot) 
    {
        this.hot = hot;
    }

    public Integer getHot() 
    {
        return hot;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Date getCreatetime() {
        return createtime;
    }

    public void setCreatetime(Date createtime) {
        this.createtime = createtime;
    }

    public Integer getStatus()
    {
        return status;
    }
    public void setActMoney(BigDecimal actMoney) 
    {
        this.actMoney = actMoney;
    }

    public BigDecimal getActMoney() 
    {
        return actMoney;
    }
    public void setIsDel(Integer isDel) 
    {
        this.isDel = isDel;
    }

    public Integer getIsDel() 
    {
        return isDel;
    }
    public void setSubscribeDuration(String subscribeDuration) 
    {
        this.subscribeDuration = subscribeDuration;
    }

    public String getSubscribeDuration() 
    {
        return subscribeDuration;
    }
    public void setOpenXz(Integer openXz) 
    {
        this.openXz = openXz;
    }

    public Integer getOpenXz() 
    {
        return openXz;
    }
    public void setDepositway(Integer depositway) 
    {
        this.depositway = depositway;
    }

    public Integer getDepositway() 
    {
        return depositway;
    }
    public void setDeposit(BigDecimal deposit) 
    {
        this.deposit = deposit;
    }

    public BigDecimal getDeposit() 
    {
        return deposit;
    }
    public void setDistributionOpen(Integer distributionOpen) 
    {
        this.distributionOpen = distributionOpen;
    }

    public Integer getDistributionOpen() 
    {
        return distributionOpen;
    }
    public void setDistributionCommissiontype(Integer distributionCommissiontype) 
    {
        this.distributionCommissiontype = distributionCommissiontype;
    }

    public Integer getDistributionCommissiontype() 
    {
        return distributionCommissiontype;
    }
    public void setFirstmoney(BigDecimal firstmoney) 
    {
        this.firstmoney = firstmoney;
    }

    public BigDecimal getFirstmoney() 
    {
        return firstmoney;
    }
    public void setSecondmoney(BigDecimal secondmoney) 
    {
        this.secondmoney = secondmoney;
    }

    public BigDecimal getSecondmoney() 
    {
        return secondmoney;
    }
    public void setThirdmoney(BigDecimal thirdmoney) 
    {
        this.thirdmoney = thirdmoney;
    }

    public BigDecimal getThirdmoney() 
    {
        return thirdmoney;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("uniacid", getUniacid())
            .append("sid", getSid())
            .append("name", getName())
            .append("carnum", getCarnum())
            .append("colour", getColour())
            .append("structure", getStructure())
            .append("grarbox", getGrarbox())
            .append("displacement", getDisplacement())
            .append("num", getNum())
            .append("pic", getPic())
            .append("content", getContent())
            .append("moneytype", getMoneytype())
            .append("money", getMoney())
            .append("cartype", getCartype())
            .append("fee", getFee())
            .append("serviceFee", getServiceFee())
            .append("zxServiceFee", getZxServiceFee())
            .append("rec", getRec())
            .append("hot", getHot())
            .append("createtime", getCreatetime())
            .append("status", getStatus())
            .append("actMoney", getActMoney())
            .append("isDel", getIsDel())
            .append("subscribeDuration", getSubscribeDuration())
            .append("openXz", getOpenXz())
            .append("depositway", getDepositway())
            .append("deposit", getDeposit())
            .append("distributionOpen", getDistributionOpen())
            .append("distributionCommissiontype", getDistributionCommissiontype())
            .append("firstmoney", getFirstmoney())
            .append("secondmoney", getSecondmoney())
            .append("thirdmoney", getThirdmoney())
            .toString();
    }
}
